﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados;

namespace Negocios
{
    public class GrupoVideo
    {
        private int codigo;

        public int Codigo
        {
            get { return codigo; }
            set { codigo = value; }
        }
        private string nome;

        public string Nome
        {
            get { return nome; }
            set
            {
                if (value.Length == 0)
                    throw new Exception("Tamanho inválido");
                else
                    if (value.Length > 30)
                        throw new Exception("Tamanho inválido");

                    else
                        nome = value;

            }

        }
        private string descricao;

        public string Descricao
        {
            get { return descricao; }
            set { descricao = value; }
        }
        private bool compartilhado;

        public bool Compartilhado
        {
            get { return compartilhado; }
            set { compartilhado = value; }
        }
        private string usuario;

        public string Usuario
        {
            get { return usuario; }
            set { usuario = value; }
        }

        public GrupoVideo(int codigo)
        {
            Codigo = codigo;
        }
        public GrupoVideo(string nome, string descricao, bool compartilhado, string usuario)
        {
            Nome = nome;
            Descricao = descricao;
            Compartilhado = compartilhado;
            Usuario = usuario;
        }
        public GrupoVideo(int codigo, string nome, string descricao, bool compartilhado, string usuario)
        {
            Codigo = codigo;
            Nome = nome;
            Descricao = descricao;
            Compartilhado = compartilhado;
            Usuario = usuario;
        }
        public bool Insere()
        {
            try
            {
                return GrupoVideoDAL.Insere(Codigo, Nome, Descricao, Compartilhado, Usuario);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao inserir Entidade" + Nome);
            } 
        }

        public bool Atualiza()
        {
            try
            {
                return GrupoVideoDAL.Atualiza(Codigo, Nome,Descricao,Compartilhado,Usuario);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Atualizar");
            }
        }
        public bool Remove ()
        {
            try
            {
                return GrupoVideoDAL.Remove(Codigo);
            }
            catch (Exception ex)
            {
                throw new Exception ("Erro ao Remover");   
            }

            }

        public void Consulta ()
        {
           DSMPTUDO.T_GRUPODEVIDEOSDataTable grupovideoDT = GrupoVideoDAL.ConsultaPorCodigo (Codigo);
           Codigo = grupovideoDT[0].nr_codigo;
           Nome = grupovideoDT[0].tx_nome;
           Descricao = grupovideoDT[0].tx_descricao;      
           Usuario = grupovideoDT[0].tx_usuario;
            
        }
        public static List<GrupoVideo> ConsultaTodos()
        {
            List<GrupoVideo> lista = new List<GrupoVideo>();
            DSMPTUDO.T_GRUPODEVIDEOSDataTable grupovideoDT = GrupoVideoDAL.ConsultaTodos();
            for (int i=0; i <grupovideoDT.Count;i++)
            {
                GrupoVideo e = new GrupoVideo(grupovideoDT(i).nr_codigo, grupovideoDT(i).tx_nome, grupovideoDT(i).tx_descricao, grupovideoDT(i).tx_usuario);
                lista.Add(e);
            }
            return lista;
        }
    }
}
